Load Redundancy Elimination on Executable Code
نویسندگان
چکیده
Optimizations performed at link time or directly applied to nal program executables have received increased attention in recent years. This paper discuss the discovery and elimination of redundant load operations in the context of a link time optimizer, an optimization that we call Load Redundancy Elimination (LRE). Our experiments show that between 50% and 75% of a program's memory references can be considered redundant because they are accessing memory locations that have been referenced less than 200{400 instructions away. We then present three proole-based LRE algorithms targeted at optimizing away these redundancies. Our results show that between 5% and 30% of the redundancy detected can indeed be eliminated, which translates into program speedups in the range of 3% to 8%. We also test our algorithm assuming diierent cache latencies, and show that, if latencies continue to grow, the load redundancy elimination will become more important.
منابع مشابه
Partial Redundancy Elimination Driven by a Cost-Benefit Analysis
Partial redundancy elimination has become a major compiler optimization that subsumes various ad hoc code motion optimizations. However, partial redundancy elimination is extremely conservative, failing to take advantage of many opportunities for optimization. We describe a new formulation of partial redundancy elimination based on a cost-benefit analysis of the flowgraph. Costs and benefits ar...
متن کاملRegister Pressure Sensitive Redundancy Elimination
Redundancy elimination optimizations avoid repeated computation of the same value by computing the value once, saving it in a temporary, and reusing the value from the temporary when it is needed again. Examples of redundancy elimination optimizations include common subexpression elimination, loop invariant code motion and partial redundancy elimination. We demonstrate that the introduction of ...
متن کاملPartial Redundancy Elimination with Predication Techniques
Partial redundancy elimination (PRE) techniques play an important role in optimizing compilers. Many optimizations, such as elimination of redundant expressions, communication optimizations, and load-reuse optimizations, employ PRE as an underlying technique for improving the efficiency of a program. Classical approaches are conservative and fail to exploit many opportunities for optimization. ...
متن کاملCode Optimization as a Side E ect of Instruction Scheduling
An instruction scheduler utilizes code reordering techniques for generating schedules in which instructions can be issued without delays. In order to perform code reordering across branches, code motion is performed that hoists some instructions above branches and sinks others below branches. Following code reordering , compensation code must be introduced in order to preserve program semantics...
متن کاملClustering Class Diagram through Mining
A class diagram models the static view of a system. The class diagrams are widely used during construction of executable code for software application as it is the only UML diagram which can be directly mapped with object oriented language. As class diagram contains duplicacy, the redundant source code generated increases the complexity of the program code. A solution is required to remove the ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Concurrency and Computation: Practice and Experience
دوره 15 شماره
صفحات -
تاریخ انتشار 2001